home *** CD-ROM | disk | FTP | other *** search
/ Psygnosis Promotional CD-ROM for E3 1998 / Psygnosis Promotional CD-ROM for E3 1998.iso / introseq.dir / 00022_Script_Image Script < prev    next >
Text File  |  1998-05-08  |  2KB  |  74 lines

  1. property startPos, endPos, mySprite, myImage, stepMax, stepCount, triggerStep
  2. property distH, distV, startRad, listH, listV
  3. global ■, baseCount, gWhichList, gAction
  4. -----------------------------------
  5. on new me, theSprite, whichMember
  6.   set mySprite = theSprite
  7.   set myImage = the name of member whichMember
  8.   set the member of sprite mySprite to member myImage
  9.   RETURN me
  10. end new
  11. -----------------------------------
  12. on setFlyInfo me, startPoint, endPoint, numberOfSteps, triggerCount, accelOrDecel
  13.   set stepMax = numberOfSteps
  14.   set stepCount = 1
  15.   set triggerStep = triggerCount
  16.   set startPos = startPoint
  17.   set endPos = endPoint
  18.   -----
  19.   if accelOrDecel = #accelerate then 
  20.     set startRad = ■/2
  21.   else if accelOrDecel = #decelerate then 
  22.     set startRad = 0
  23.   end if
  24.   -----
  25.   set distPoint = endPoint - startpoint
  26.   set distH = getAt(distPoint, 1)
  27.   set distV = getAt(distPoint, 2)
  28.   calculatePositions
  29. end setFlyInfo
  30. -----------------------------------
  31. on calculatePositions
  32.   set proportionList = []
  33.   set accumProportionList = []
  34.   set totalProportion = 0
  35.   repeat with n = 1 to stepMax
  36.     set myRad = startRad + (■/2/stepMax*n)
  37.     set myProportion = sin(myRad)
  38.     set totalProportion = totalProportion + myProportion 
  39.     append proportionList, myProportion
  40.     append accumProportionList, totalProportion
  41.   end repeat
  42.   -----
  43.   set listH = []
  44.   set totalDistH = 0
  45.   set listV = []
  46.   set totalDistV = 0
  47.   -----
  48.   repeat with n = 1 to stepMax
  49.     set myAccumProportion = getAt(accumProportionList, n)
  50.     set myDistH = integer((myAccumProportion/totalProportion) * distH)
  51.     set myDistV = integer((myAccumProportion/totalProportion) * distV)
  52.     append listH, myDistH
  53.     set totalDistH = totalDistH + myDistH
  54.     append listV, myDistV
  55.     set totalDistV = totalDistV + myDistV
  56.   end repeat
  57.   -----
  58. end calculatePositions
  59. -----------------------------------
  60. on fly me
  61.   if (baseCount >= triggerStep) AND (stepCount <= count(listH)) then 
  62.     set myH = getAt(listH, stepCount) + getAt(startPos, 1)
  63.     set myV = getAt(listV, stepCount) + getAt(startPos, 2)
  64.     set the loc of sprite mySprite to point(myH, myV)
  65.     set stepCount = stepCount + 1
  66.     updateStage
  67.   else if (stepCount > count(listH)) then
  68.     set lastObj = getAt(gWhichList, count(gWhichList))
  69.     if (me = lastObj) then
  70.      prepareNextAction
  71.     end if
  72.   end if
  73. end fly
  74.